home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xml / DDMLWriter.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  5.3 KB  |  129 lines

  1. package com.extensibility.xml;
  2.  
  3. import com.extensibility.util.Debug;
  4. import java.util.Enumeration;
  5.  
  6. public class DDMLWriter extends SchemaWriter implements ExportInterface {
  7.    ElemProxy elemProxy;
  8.    AttrProxy attrProxy;
  9.    UnparsedEntityProxy unparsedEntityProxy;
  10.    NotationProxy notationProxy;
  11.    ExtSubsetProxy extSubsetProxy;
  12.  
  13.    public DDMLWriter(SchemaIntf var1) {
  14.       super(var1, var1.getURI());
  15.    }
  16.  
  17.    public DDMLWriter(SchemaIntf var1, URI var2) {
  18.       super(var1, var2);
  19.    }
  20.  
  21.    public String getType(String var1) {
  22.       if (var1.equals("CDATA")) {
  23.          return "CData";
  24.       } else if (var1.equals("ID")) {
  25.          return "ID";
  26.       } else if (var1.equals("IDREF")) {
  27.          return "IDRef";
  28.       } else if (var1.equals("IDREFS")) {
  29.          return "IDRefs";
  30.       } else if (var1.equals("ENTITY")) {
  31.          return "Entity";
  32.       } else if (var1.equals("ENTITIES")) {
  33.          return "Entities";
  34.       } else if (var1.equals("NMTOKEN")) {
  35.          return "Nmtoken";
  36.       } else if (var1.equals("NMTOKENS")) {
  37.          return "Nmtokens";
  38.       } else if (var1.equals("NOTATION")) {
  39.          return "Notation";
  40.       } else if (var1.equals("")) {
  41.          return "Enumeration";
  42.       } else {
  43.          Debug.assert(false, String.valueOf("unknown datatype: ").concat(String.valueOf(var1)));
  44.          return String.valueOf("#UNKNOWN: ").concat(String.valueOf(var1));
  45.       }
  46.    }
  47.  
  48.    protected SchemaWriter.DeclWriterProxyIntf createProxy(ElementDeclaration var1) {
  49.       if (this.elemProxy == null) {
  50.          this.elemProxy = new ElemProxy(this);
  51.       }
  52.  
  53.       this.elemProxy.setDecl(var1);
  54.       return this.elemProxy;
  55.    }
  56.  
  57.    protected SchemaWriter.DeclWriterProxyIntf createProxy(AttributeDeclaration var1) {
  58.       if (this.attrProxy == null) {
  59.          this.attrProxy = new AttrProxy(this);
  60.       }
  61.  
  62.       this.attrProxy.setDecl(var1);
  63.       return this.attrProxy;
  64.    }
  65.  
  66.    protected SchemaWriter.DeclWriterProxyIntf createProxy(GeneralEntityDeclaration var1) {
  67.       if (!(var1 instanceof ExternalGEDeclaration)) {
  68.          return super.nopProxy;
  69.       } else {
  70.          ExternalGEDeclaration var2 = (ExternalGEDeclaration)var1;
  71.          if (!var2.isUnparsed()) {
  72.             return super.nopProxy;
  73.          } else {
  74.             if (this.unparsedEntityProxy == null) {
  75.                this.unparsedEntityProxy = new UnparsedEntityProxy(this);
  76.             }
  77.  
  78.             this.unparsedEntityProxy.setDecl(var2);
  79.             return this.unparsedEntityProxy;
  80.          }
  81.       }
  82.    }
  83.  
  84.    protected SchemaWriter.DeclWriterProxyIntf createProxy(NotationDeclaration var1) {
  85.       if (this.notationProxy == null) {
  86.          this.notationProxy = new NotationProxy(this);
  87.       }
  88.  
  89.       this.notationProxy.setDecl(var1);
  90.       return this.notationProxy;
  91.    }
  92.  
  93.    protected SchemaWriter.DeclWriterProxyIntf createProxy(ExternalSubset var1) {
  94.       if (this.extSubsetProxy == null) {
  95.          this.extSubsetProxy = new ExtSubsetProxy(this);
  96.       }
  97.  
  98.       this.extSubsetProxy.setDecl(var1);
  99.       return this.extSubsetProxy;
  100.    }
  101.  
  102.    protected String getExtSubsetsAsGEDecls() {
  103.       StringBuffer var1 = new StringBuffer();
  104.       Enumeration var2 = super.schema.getStructure().children();
  105.       String var3 = String.valueOf(System.getProperty("line.separator")).concat(String.valueOf("\t"));
  106.  
  107.       while(var2.hasMoreElements()) {
  108.          ExternalSubset var4 = (ExternalSubset)var2.nextElement();
  109.          var1.append(String.valueOf(String.valueOf(String.valueOf(String.valueOf(String.valueOf(var3).concat(String.valueOf("<!ENTITY "))).concat(String.valueOf(((BaseDeclaration)var4).getName()))).concat(String.valueOf(" SYSTEM  '"))).concat(String.valueOf(var4.getSystemURI().toSource()))).concat(String.valueOf("'>")));
  110.       }
  111.  
  112.       var1.append(System.getProperty("line.separator"));
  113.       return var1.toString();
  114.    }
  115.  
  116.    protected void writeHeader(SXE var1) {
  117.       String var2 = this.getExtSubsetsAsGEDecls();
  118.       var1.writeDocTypeWithInternal("DocumentDef", (String)null, var2);
  119.       var1.writeComment("Generated by XML Authority. DDML version 1.0");
  120.       var1.writeElem("DocumentDef");
  121.       var1.writeAttr("name", super.schema.getURI().getShortName());
  122.       var1.writeLineBreak();
  123.       var1.writeAttr("xmlns", "http://www.purl.org/NET/ddml/v1");
  124.       var1.writeLineBreak();
  125.       var1.writeAttr("xmlns:DDML", "http://www.purl.org/NET/ddml/v1");
  126.       var1.writeAttr("Version", "1.0");
  127.    }
  128. }
  129.